package com.car.service;

import com.car.pojo.Car;
import com.car.pojo.CarQueryParam;
import com.car.pojo.PageResult;

import java.util.List;

/**
 * 汽车服务接口
 */
public interface CarService {

    /**
     * 根据ID查询汽车信息
     */
    Car getInfo(Integer id);

    /**
     * 根据用户ID查询车辆列表
     */
    List<Car> getCarsByUserId(Integer userId);
    /**
     * 根据用户ID查询车辆数量
     */
    Integer getCarsCountByUserId(Integer userId);

    /**
     * 检查车牌号是否已存在
     */
    boolean isPlateNumberExists(String plateNumber, Integer excludeId, Integer userId);

    /**
     * 分页查询汽车
     */
    PageResult<Car> page(CarQueryParam param);

    /**
     * 新增汽车
     */
    void save(Car car) throws Exception;

    /**
     * 添加用户车辆
     */
    void addCar(Car car);



    /**
     * 修改汽车
     */
    void update(Car car);
    /**
     * 更新用户车辆信息
     */
    void updateCar(Car car);

    /**
     * 删除汽车
     */
    void delete(List<Integer> ids);

    /**
     * 删除用户车辆
     */
    void deleteCar(Integer id);

    /**
     * 查询所有汽车
     */
    List<Car> list();
}